/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.admin.security.dynamic;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 权限列表。。。
 * <p>
 * 如果只配置了 name，表示的这是一个单独的url，注意name要与角色管理中的权限一致。 如： admin:index, admin:upload
 * <p>
 * 如果配置了 name/values（无值）， 表示这是一个标准权限({@link AuthorizationProperties#STANDARD_PERMS})
 * <p>
 * 如果配置了 name/values（有值），表示这是一个自定义的权限， 如name=admin, value=list,save,upload, 此时将会生成三个权限标识， admin:list, admin:save,
 * admin:upload
 *
 * @author 挺好的 2023年06月06日 14:29
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AuthorizationItem {

    /**
     * 权限名称
     */
    private String name;

    /**
     * 对应的路径。 如： name: admin:upload, url: /admin/upload，如有配置，则使用配置的
     */
    private String url;

    /**
     * 权限， 多个权限之间使用 "," 号分隔，
     * 如果不填写，则默认填充所有权限。{@link AuthorizationProperties#STANDARD_PERMS}
     */
    private List <String> values;
}
